home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / marineb.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  28KB  |  728 lines

  1. /***************************************************************************
  2.  
  3. Marine Boy hardware memory map (preliminary)
  4.  
  5. driver by Zsolt Vasvari
  6.  
  7. MAIN CPU:
  8.  
  9. 0000-7fff ROM (not all games use the entire region)
  10. 8000-87ff RAM
  11. 8c18-8c3f sprite RAM (Hoccer only)
  12. 8800-8bff video RAM     \ (contains sprite RAM in invisible regions)
  13. 9000-93ff color RAM     /
  14.  
  15. read:
  16. a000      IN0
  17. a800      IN1
  18. b000      DSW
  19. b800      IN2/watchdog reset
  20.  
  21. write:
  22. 9800      column scroll
  23. 9a00      char palette bank bit 0 (not used by Hoccer)
  24. 9c00      char palette bank bit 1 (not used by Hoccer)
  25. a000      NMI interrupt acknowledge/enable
  26. a001      flipy
  27. a002      flipx
  28. b800      ???
  29.  
  30.  
  31. I/0 ports:
  32. write
  33. 08        8910  control
  34. 09        8910  write
  35.  
  36. ***************************************************************************/
  37.  
  38. #include "driver.h"
  39. #include "vidhrdw/generic.h"
  40.  
  41.  
  42.  
  43. extern unsigned char *marineb_column_scroll;
  44. extern int marineb_active_low_flipscreen;
  45.  
  46. void espial_init_machine(void);
  47. void espial_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  48.  
  49. WRITE_HANDLER( marineb_palbank0_w );
  50. WRITE_HANDLER( marineb_palbank1_w );
  51.  
  52. WRITE_HANDLER( marineb_flipscreen_x_w );
  53. WRITE_HANDLER( marineb_flipscreen_y_w );
  54.  
  55. void marineb_vh_screenrefresh (struct osd_bitmap *bitmap,int full_refresh);
  56. void changes_vh_screenrefresh (struct osd_bitmap *bitmap,int full_refresh);
  57. void springer_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  58. void hoccer_vh_screenrefresh  (struct osd_bitmap *bitmap,int full_refresh);
  59. void hopprobo_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  60.  
  61.  
  62. static void marineb_init_machine(void)
  63. {
  64.     marineb_active_low_flipscreen = 0;
  65.     espial_init_machine();
  66. }
  67.  
  68. static void springer_init_machine(void)
  69. {
  70.     marineb_active_low_flipscreen = 1;
  71.     espial_init_machine();
  72. }
  73.  
  74.  
  75. static struct MemoryReadAddress readmem[] =
  76. {
  77.     { 0x0000, 0x7fff, MRA_ROM },
  78.     { 0x8000, 0x8bff, MRA_RAM },
  79.     { 0x9000, 0x93ff, MRA_RAM },
  80.     { 0xa000, 0xa000, input_port_0_r },
  81.     { 0xa800, 0xa800, input_port_1_r },
  82.     { 0xb000, 0xb000, input_port_2_r },
  83.     { 0xb800, 0xb800, input_port_3_r },  /* also watchdog */
  84.     { -1 }    /* end of table */
  85. };
  86.  
  87. static struct MemoryWriteAddress writemem[] =
  88. {
  89.     { 0x0000, 0x7fff, MWA_ROM },
  90.     { 0x8000, 0x87ff, MWA_RAM },
  91.     { 0x8800, 0x8bff, videoram_w, &videoram, &videoram_size },
  92.     { 0x8c00, 0x8c3f, MWA_RAM, &spriteram },  /* Hoccer only */
  93.     { 0x9000, 0x93ff, colorram_w, &colorram },
  94.     { 0x9800, 0x9800, MWA_RAM, &marineb_column_scroll },
  95.     { 0x9a00, 0x9a00, marineb_palbank0_w },
  96.     { 0x9c00, 0x9c00, marineb_palbank1_w },
  97.     { 0xa000, 0xa000, interrupt_enable_w },
  98.     { 0xa001, 0xa001, marineb_flipscreen_y_w },
  99.     { 0xa002, 0xa002, marineb_flipscreen_x_w },
  100.     { 0xb800, 0xb800, MWA_NOP },
  101.     { -1 }    /* end of table */
  102. };
  103.  
  104.  
  105. static struct IOWritePort marineb_writeport[] =
  106. {
  107.     { 0x08, 0x08, AY8910_control_port_0_w },
  108.     { 0x09, 0x09, AY8910_write_port_0_w },
  109.     { -1 }    /* end of table */
  110. };
  111.  
  112. static struct IOWritePort wanted_writeport[] =
  113. {
  114.     { 0x00, 0x00, AY8910_control_port_0_w },
  115.     { 0x01, 0x01, AY8910_write_port_0_w },
  116.     { 0x02, 0x02, AY8910_control_port_1_w },
  117.     { 0x03, 0x03, AY8910_write_port_1_w },
  118.     { -1 }  /* end of table */
  119. };
  120.  
  121.  
  122. INPUT_PORTS_START( marineb )
  123.     PORT_START      /* IN0 */
  124.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  125.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  126.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  127.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  128.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  129.  
  130.     PORT_START      /* IN1 */
  131.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
  132.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  133.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  134.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  135.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  136.  
  137.     PORT_START      /* DSW1 */
  138.     PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
  139.     PORT_DIPSETTING(    0x00, "3" )
  140.     PORT_DIPSETTING(    0x01, "4" )
  141.     PORT_DIPSETTING(    0x02, "5" )
  142.     PORT_DIPSETTING(    0x03, "6" )
  143.     PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) )
  144.     PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
  145.   //PORT_DIPSETTING(    0x04, "???" )
  146.   //PORT_DIPSETTING(    0x08, "???" )
  147.   //PORT_DIPSETTING(    0x0c, "???" )
  148.   //PORT_DIPSETTING(    0x10, "???" )
  149.   //PORT_DIPSETTING(    0x14, "???" )
  150.   //PORT_DIPSETTING(    0x18, "???" )
  151.     PORT_DIPSETTING(    0x1c, DEF_STR( Free_Play ) )
  152.     PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
  153.     PORT_DIPSETTING(    0x00, "20000 50000" )
  154.     PORT_DIPSETTING(    0x20, "40000 70000" )
  155.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
  156.     PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  157.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  158.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
  159.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  160.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  161.  
  162.     PORT_START    /* IN3 */
  163.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  164.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  165.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
  166.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
  167.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  168.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2)
  169.     PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  170. INPUT_PORTS_END
  171.  
  172. INPUT_PORTS_START( changes )
  173.     PORT_START      /* IN0 */
  174.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  175.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  176.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  177.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  178.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  179.  
  180.     PORT_START      /* IN1 */
  181.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
  182.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  183.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  184.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  185.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  186.  
  187.     PORT_START      /* DSW1 */
  188.     PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
  189.     PORT_DIPSETTING(    0x00, "3" )
  190.     PORT_DIPSETTING(    0x01, "4" )
  191.     PORT_DIPSETTING(    0x02, "5" )
  192.     PORT_DIPSETTING(    0x03, "6" )
  193.     PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
  194.     PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
  195.   //PORT_DIPSETTING(    0x04, "???" )
  196.   //PORT_DIPSETTING(    0x08, "???" )
  197.     PORT_DIPSETTING(    0x0c, DEF_STR( Free_Play ) )
  198.     PORT_DIPNAME( 0x10, 0x00, "1st Bonus Life" )
  199.     PORT_DIPSETTING(    0x00, "20000" )
  200.     PORT_DIPSETTING(    0x10, "40000" )
  201.     PORT_DIPNAME( 0x20, 0x00, "2nd Bonus Life" )
  202.     PORT_DIPSETTING(    0x00, "50000" )
  203.     PORT_DIPSETTING(    0x20, "100000" )
  204.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
  205.     PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  206.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  207.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
  208.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  209.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  210.  
  211.     PORT_START    /* IN3 */
  212.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  213.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  214.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
  215.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
  216.     PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  217. INPUT_PORTS_END
  218.  
  219. INPUT_PORTS_START( hoccer )
  220.     PORT_START      /* IN0 */
  221.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  222.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  223.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  224.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  225.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  226.  
  227.     PORT_START      /* IN1 */
  228.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
  229.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  230.     PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  231.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  232.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  233.  
  234.     PORT_START      /* DSW1 */
  235.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  236.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  237.     PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  238.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
  239.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  240.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  241.     PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Unknown ) )  /* difficulty maybe? */
  242.     PORT_DIPSETTING(    0x00, "0" )
  243.     PORT_DIPSETTING(    0x04, "1" )
  244.     PORT_DIPSETTING(    0x08, "2" )
  245.     PORT_DIPSETTING(    0x0c, "3" )
  246.     PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
  247.     PORT_DIPSETTING(    0x00, "3" )
  248.     PORT_DIPSETTING(    0x10, "4" )
  249.     PORT_DIPSETTING(    0x20, "5" )
  250.     PORT_DIPSETTING(    0x30, "6" )
  251.     PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) )
  252.     PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
  253.     PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
  254.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
  255.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
  256.  
  257.     PORT_START    /* IN3 */
  258.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
  259.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
  260.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
  261.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
  262.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  263.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2)
  264.     PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  265. INPUT_PORTS_END
  266.  
  267. INPUT_PORTS_START( wanted )
  268.     PORT_START      /* IN0 */
  269.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  270.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  271.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  272.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  273.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
  274.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  275.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
  276.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
  277.  
  278.     PORT_START      /* IN1 */
  279.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  280.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  281.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  282.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
  283.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
  284.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  285.     PORT_BIT( 0x40, IP_ACTIVE_LOW,  IPT_COIN2 )
  286.     PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_COIN1 )
  287.  
  288.     PORT_START      /* DSW1 */
  289.     PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
  290.     PORT_DIPSETTING(    0x00, "3" )
  291.     PORT_DIPSETTING(    0x01, "4" )
  292.     PORT_DIPSETTING(    0x02, "5" )
  293.     PORT_DIPSETTING(    0x03, "6" )
  294.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  295.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  296.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  297.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
  298.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  299.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  300.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
  301.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  302.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  303.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) )
  304.     PORT_DIPSETTING(    0x20, DEF_STR( Upright ) )
  305.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  306.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
  307.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  308.     PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  309.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
  310.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  311.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  312.  
  313.     PORT_START      /* DSW2 */
  314.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
  315.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  316.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  317.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
  318.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  319.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  320.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  321.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  322.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  323.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
  324.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  325.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  326.     PORT_DIPNAME( 0xf0, 0x10, DEF_STR( Coinage ) )
  327.     PORT_DIPSETTING(    0x40, " A 3C/1C  B 3C/1C" )
  328.     PORT_DIPSETTING(    0xe0, " A 3C/1C  B 1C/2C" )
  329.     PORT_DIPSETTING(    0xf0, " A 3C/1C  B 1C/4C" )
  330.     PORT_DIPSETTING(    0x20, " A 2C/1C  B 2C/1C" )
  331.     PORT_DIPSETTING(    0xd0, " A 2C/1C  B 1C/1C" )
  332.     PORT_DIPSETTING(    0x70, " A 2C/1C  B 1C/3C" )
  333.     PORT_DIPSETTING(    0xb0, " A 2C/1C  B 1C/5C" )
  334.     PORT_DIPSETTING(    0xc0, " A 2C/1C  B 1C/6C" )
  335.     PORT_DIPSETTING(    0x60, " A 1C/1C  B 4C/1C" )
  336.     PORT_DIPSETTING(    0x50, " A 1C/1C  B 2C/1C" )
  337.     PORT_DIPSETTING(    0x10, " A 1C/1C  B 1C/1C" )
  338.     PORT_DIPSETTING(    0x30, " A 1C/2C  B 1C/2C" )
  339.     PORT_DIPSETTING(    0xa0, " A 1C/1C  B 1C/3C" )
  340.     PORT_DIPSETTING(    0x80, " A 1C/1C  B 1C/5C" )
  341.     PORT_DIPSETTING(    0x90, " A 1C/1C  B 1C/6C" )
  342.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  343. INPUT_PORTS_END
  344.  
  345.  
  346. static struct GfxLayout marineb_charlayout =
  347. {
  348.     8,8,    /* 8*8 characters */
  349.     512,    /* 512 characters */
  350.     2,        /* 2 bits per pixel */
  351.     { 0, 4 },    /* the two bitplanes for 4 pixels are packed into one byte */
  352.     { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 },    /* bits are packed in groups of four */
  353.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  354.     16*8    /* every char takes 16 bytes */
  355. };
  356.  
  357. static struct GfxLayout wanted_charlayout =
  358. {
  359.     8,8,    /* 8*8 characters */
  360.     1024,    /* 1024 characters */
  361.     2,        /* 2 bits per pixel */
  362.     { 4, 0 },    /* the two bitplanes for 4 pixels are packed into one byte */
  363.     { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 },    /* bits are packed in groups of four */
  364.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  365.     16*8    /* every char takes 16 bytes */
  366. };
  367.  
  368. static struct GfxLayout hopprobo_charlayout =
  369. {
  370.     8,8,    /* 8*8 characters */
  371.     1024,    /* 1024 characters */
  372.     2,        /* 2 bits per pixel */
  373.     { 0, 4 },    /* the two bitplanes for 4 pixels are packed into one byte */
  374.     { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 },    /* bits are packed in groups of four */
  375.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  376.     16*8    /* every char takes 16 bytes */
  377. };
  378.  
  379. static struct GfxLayout marineb_small_spritelayout =
  380. {
  381.     16,16,    /* 16*16 sprites */
  382.     64,        /* 64 sprites */
  383.     2,        /* 2 bits per pixel */
  384.     { 0, 256*32*8 },    /* the two bitplanes are separated */
  385.     {     0,     1,     2,     3,     4,     5,     6,     7,
  386.       8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
  387.     {  0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8,
  388.       16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
  389.     32*8    /* every sprite takes 32 consecutive bytes */
  390. };
  391.  
  392. static struct GfxLayout marineb_big_spritelayout =
  393. {
  394.     32,32,    /* 32*32 sprites */
  395.     64,        /* 64 sprites */
  396.     2,        /* 2 bits per pixel */
  397.     { 0, 256*32*8 },    /* the two bitplanes are separated */
  398.     {      0,      1,      2,      3,      4,      5,      6,      7,
  399.        8*8+0,  8*8+1,  8*8+2,  8*8+3,  8*8+4,  8*8+5,  8*8+6,  8*8+7,
  400.       32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7,
  401.       40*8+0, 40*8+1, 40*8+2, 40*8+3, 40*8+4, 40*8+5, 40*8+6, 40*8+7 },
  402.     {  0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8,
  403.       16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8,
  404.       64*8, 65*8, 66*8, 67*8, 68*8, 69*8, 70*8, 71*8,
  405.       80*8, 81*8, 82*8, 83*8, 84*8, 85*8, 86*8, 87*8 },
  406.     4*32*8    /* every sprite takes 128 consecutive bytes */
  407. };
  408.  
  409. static struct GfxLayout changes_small_spritelayout =
  410. {
  411.     16,16,    /* 16*16 sprites */
  412.     64,        /* 64 sprites */
  413.     2,        /* 2 bits per pixel */
  414.     { 0, 4 },    /* the two bitplanes for 4 pixels are packed into one byte */
  415.     {      0,      1,      2,      3,  8*8+0,  8*8+1,  8*8+2,  8*8+3,
  416.       16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 },
  417.     {  0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8,
  418.       32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
  419.     64*8    /* every sprite takes 64 consecutive bytes */
  420. };
  421.  
  422. static struct GfxLayout changes_big_spritelayout =
  423. {
  424.     32,32,    /* 32*3 sprites */
  425.     16,        /* 32 sprites */
  426.     2,        /* 2 bits per pixel */
  427.     { 0, 4 },    /* the two bitplanes for 4 pixels are packed into one byte */
  428.     {      0,      1,      2,      3,  8*8+0,  8*8+1,  8*8+2,  8*8+3,
  429.       16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3,
  430.       64*8+0, 64*8+1, 64*8+2, 64*8+3, 72*8+0, 72*8+1, 72*8+2, 72*8+3,
  431.       80*8+0, 80*8+1, 80*8+2, 80*8+3, 88*8+0, 88*8+1, 88*8+2, 88*8+3 },
  432.     {   0*8,   1*8,   2*8,   3*8,   4*8,   5*8,   6*8,   7*8,
  433.        32*8,  33*8,  34*8,  35*8,  36*8,  37*8,  38*8,  39*8,
  434.       128*8, 129*8, 130*8, 131*8, 132*8, 133*8, 134*8, 135*8,
  435.       160*8, 161*8, 162*8, 163*8, 164*8, 165*8, 166*8, 167*8 },
  436.     4*64*8    /* every sprite takes 256 consecutive bytes */
  437. };
  438.  
  439.  
  440. static struct GfxDecodeInfo marineb_gfxdecodeinfo[] =
  441. {
  442.     { REGION_GFX1, 0x0000, &marineb_charlayout,          0, 64 },
  443.     { REGION_GFX2, 0x0000, &marineb_small_spritelayout,  0, 64 },
  444.     { REGION_GFX2, 0x0000, &marineb_big_spritelayout,    0, 64 },
  445.     { -1 } /* end of array */
  446. };
  447.  
  448. static struct GfxDecodeInfo wanted_gfxdecodeinfo[] =
  449. {
  450.     { REGION_GFX1, 0x0000, &wanted_charlayout,           0, 64 },
  451.     { REGION_GFX2, 0x0000, &marineb_small_spritelayout,  0, 64 },
  452.     { REGION_GFX2, 0x0000, &marineb_big_spritelayout,    0, 64 },
  453.     { -1 } /* end of array */
  454. };
  455.  
  456. static struct GfxDecodeInfo changes_gfxdecodeinfo[] =
  457. {
  458.     { REGION_GFX1, 0x0000, &marineb_charlayout,          0, 64 },
  459.     { REGION_GFX2, 0x0000, &changes_small_spritelayout,  0, 64 },
  460.     { REGION_GFX2, 0x1000, &changes_big_spritelayout,    0, 64 },
  461.     { -1 } /* end of array */
  462. };
  463.  
  464. static struct GfxDecodeInfo hoccer_gfxdecodeinfo[] =
  465. {
  466.     { REGION_GFX1, 0x0000, &marineb_charlayout,          0, 16 },    /* no palette banks */
  467.     { REGION_GFX2, 0x0000, &changes_small_spritelayout,  0, 16 },    /* no palette banks */
  468.     { -1 } /* end of array */
  469. };
  470.  
  471. static struct GfxDecodeInfo hopprobo_gfxdecodeinfo[] =
  472. {
  473.     { REGION_GFX1, 0x0000, &hopprobo_charlayout,         0, 64 },
  474.     { REGION_GFX2, 0x0000, &marineb_small_spritelayout,  0, 64 },
  475.     { REGION_GFX2, 0x0000, &marineb_big_spritelayout,    0, 64 },
  476.     { -1 } /* end of array */
  477. };
  478.  
  479.  
  480. static struct AY8910interface marineb_ay8910_interface =
  481. {
  482.     1,    /* 1 chip */
  483.     1500000,    /* 1.5 MHz ? */
  484.     { 50 },
  485.     { 0 },
  486.     { 0 },
  487.     { 0 },
  488.     { 0 }
  489. };
  490.  
  491. static struct AY8910interface wanted_ay8910_interface =
  492. {
  493.     2,    /* 2 chips */
  494.     1500000,    /* 1.5 MHz ? */
  495.     { 25, 25 },
  496.     { 0 },
  497.     { 0 },
  498.     { 0 },
  499.     { 0 }
  500. };
  501.  
  502.  
  503. #define springer_gfxdecodeinfo   marineb_gfxdecodeinfo
  504.  
  505. #define wanted_vh_screenrefresh  springer_vh_screenrefresh
  506.  
  507. #define DRIVER(NAME, INITMACHINE, SNDHRDW, INTERRUPT)                \
  508. static struct MachineDriver machine_driver_##NAME =                    \
  509. {                                                                    \
  510.     /* basic machine hardware */                                    \
  511.     {                                                                \
  512.         {                                                            \
  513.             CPU_Z80,                                                \
  514.             3072000,    /* 3.072 Mhz */                                \
  515.             readmem,writemem,0,SNDHRDW##_writeport,                    \
  516.             INTERRUPT,1                                                 \
  517.         }                                                            \
  518.     },                                                                \
  519.     60, 5000,    /* frames per second, vblank duration */            \
  520.     1,    /* single CPU game */                                        \
  521.     INITMACHINE##_init_machine,                                        \
  522.                                                                     \
  523.     /* video hardware */                                            \
  524.     32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },                        \
  525.     NAME##_gfxdecodeinfo,                                            \
  526.     256,256,                                                        \
  527.     espial_vh_convert_color_prom,                                    \
  528.     VIDEO_TYPE_RASTER,                                                \
  529.     0,                                                                \
  530.     generic_vh_start,                                                \
  531.     generic_vh_stop,                                                \
  532.     NAME##_vh_screenrefresh,                                        \
  533.                                                                     \
  534.     /* sound hardware */                                            \
  535.     0,0,0,0,                                                        \
  536.     {                                                                \
  537.         {                                                            \
  538.             SOUND_AY8910,                                            \
  539.             &SNDHRDW##_ay8910_interface                                \
  540.         }                                                            \
  541.     }                                                                \
  542. }
  543.  
  544.  
  545. /*     NAME      INITMACH  SNDHRDW    INTERRUPT */
  546. DRIVER(marineb,  marineb,  marineb, nmi_interrupt);
  547. DRIVER(changes,  marineb,  marineb, nmi_interrupt);
  548. DRIVER(springer, springer, marineb, nmi_interrupt);
  549. DRIVER(hoccer,   marineb,  marineb, nmi_interrupt);
  550. DRIVER(wanted,   marineb,  wanted,  interrupt    );
  551. DRIVER(hopprobo, marineb,  marineb, nmi_interrupt);
  552.  
  553.  
  554. /***************************************************************************
  555.  
  556.   Game driver(s)
  557.  
  558. ***************************************************************************/
  559.  
  560. ROM_START( marineb )
  561.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  562.     ROM_LOAD( "marineb.1",     0x0000, 0x1000, 0x661d6540 )
  563.     ROM_LOAD( "marineb.2",     0x1000, 0x1000, 0x922da17f )
  564.     ROM_LOAD( "marineb.3",     0x2000, 0x1000, 0x820a235b )
  565.     ROM_LOAD( "marineb.4",     0x3000, 0x1000, 0xa157a283 )
  566.     ROM_LOAD( "marineb.5",     0x4000, 0x1000, 0x9ffff9c0 )
  567.  
  568.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  569.     ROM_LOAD( "marineb.6",     0x0000, 0x2000, 0xee53ec2e )
  570.  
  571.     ROM_REGION( 0x4000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  572.     ROM_LOAD( "marineb.8",     0x0000, 0x2000, 0xdc8bc46c )
  573.     ROM_LOAD( "marineb.7",     0x2000, 0x2000, 0x9d2e19ab )
  574.  
  575.     ROM_REGION( 0x0200, REGION_PROMS )
  576.     ROM_LOAD( "marineb.1b",    0x0000, 0x0100, 0xf32d9472 ) /* palette low 4 bits */
  577.     ROM_LOAD( "marineb.1c",    0x0100, 0x0100, 0x93c69d3e ) /* palette high 4 bits */
  578. ROM_END
  579.  
  580. ROM_START( changes )
  581.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  582.     ROM_LOAD( "changes.1",     0x0000, 0x1000, 0x56f83813 )
  583.     ROM_LOAD( "changes.2",     0x1000, 0x1000, 0x0e627f0b )
  584.     ROM_LOAD( "changes.3",     0x2000, 0x1000, 0xff8291e9 )
  585.     ROM_LOAD( "changes.4",     0x3000, 0x1000, 0xa8e9aa22 )
  586.     ROM_LOAD( "changes.5",     0x4000, 0x1000, 0xf4198e9e )
  587.  
  588.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  589.     ROM_LOAD( "changes.7",     0x0000, 0x2000, 0x2204194e )
  590.  
  591.     ROM_REGION( 0x2000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  592.     ROM_LOAD( "changes.6",     0x0000, 0x2000, 0x985c9db4 )
  593.  
  594.     ROM_REGION( 0x0200, REGION_PROMS )
  595.     ROM_LOAD( "changes.1b",    0x0000, 0x0100, 0xf693c153 ) /* palette low 4 bits */
  596.     ROM_LOAD( "changes.1c",    0x0100, 0x0100, 0xf8331705 ) /* palette high 4 bits */
  597. ROM_END
  598.  
  599. ROM_START( looper )
  600.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  601.     ROM_LOAD( "changes.1",     0x0000, 0x1000, 0x56f83813 )
  602.     ROM_LOAD( "changes.2",     0x1000, 0x1000, 0x0e627f0b )
  603.     ROM_LOAD( "changes.3",     0x2000, 0x1000, 0xff8291e9 )
  604.     ROM_LOAD( "changes.4",     0x3000, 0x1000, 0xa8e9aa22 )
  605.     ROM_LOAD( "changes.5",     0x4000, 0x1000, 0xf4198e9e )
  606.  
  607.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  608.     ROM_LOAD( "looper_7.bin",  0x0000, 0x2000, 0x71a89975 )
  609.  
  610.     ROM_REGION( 0x2000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  611.     ROM_LOAD( "looper_6.bin",  0x0000, 0x2000, 0x1f3f70c2 )
  612.  
  613.     ROM_REGION( 0x0200, REGION_PROMS )
  614.     ROM_LOAD( "changes.1b",    0x0000, 0x0100, 0xf693c153 ) /* palette low 4 bits */
  615.     ROM_LOAD( "changes.1c",    0x0100, 0x0100, 0xf8331705 ) /* palette high 4 bits */
  616. ROM_END
  617.  
  618. ROM_START( springer )
  619.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  620.     ROM_LOAD( "springer.1",    0x0000, 0x1000, 0x0794103a )
  621.     ROM_LOAD( "springer.2",    0x1000, 0x1000, 0xf4aecd9a )
  622.     ROM_LOAD( "springer.3",    0x2000, 0x1000, 0x2f452371 )
  623.     ROM_LOAD( "springer.4",    0x3000, 0x1000, 0x859d1bf5 )
  624.     ROM_LOAD( "springer.5",    0x4000, 0x1000, 0x72adbbe3 )
  625.  
  626.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  627.     ROM_LOAD( "springer.6",    0x0000, 0x1000, 0x6a961833 )
  628.     ROM_LOAD( "springer.7",    0x1000, 0x1000, 0x95ab8fc0 )
  629.  
  630.     ROM_REGION( 0x4000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  631.     ROM_LOAD( "springer.8",    0x0000, 0x1000, 0xa54bafdc )
  632.                             /* 0x1000-0x1fff empty for my convinience */
  633.     ROM_LOAD( "springer.9",    0x2000, 0x1000, 0xfa302775 )
  634.                             /* 0x3000-0x3fff empty for my convinience */
  635.  
  636.     ROM_REGION( 0x0200, REGION_PROMS )
  637.     ROM_LOAD( "1b.vid",        0x0000, 0x0100, 0xa2f935aa ) /* palette low 4 bits */
  638.     ROM_LOAD( "1c.vid",        0x0100, 0x0100, 0xb95421f4 ) /* palette high 4 bits */
  639. ROM_END
  640.  
  641. ROM_START( hoccer )
  642.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  643.     ROM_LOAD( "hr1.cpu",       0x0000, 0x2000, 0x12e96635 )
  644.     ROM_LOAD( "hr2.cpu",       0x2000, 0x2000, 0xcf1fc328 )
  645.     ROM_LOAD( "hr3.cpu",       0x4000, 0x2000, 0x048a0659 )
  646.     ROM_LOAD( "hr4.cpu",       0x6000, 0x2000, 0x9a788a2c )
  647.  
  648.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  649.     ROM_LOAD( "hr.d",          0x0000, 0x2000, 0xd33aa980 )
  650.  
  651.     ROM_REGION( 0x2000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  652.     ROM_LOAD( "hr.c",          0x0000, 0x2000, 0x02808294 )
  653.  
  654.     ROM_REGION( 0x0200, REGION_PROMS )
  655.     ROM_LOAD( "hr.1b",         0x0000, 0x0100, 0x896521d7 ) /* palette low 4 bits */
  656.     ROM_LOAD( "hr.1c",         0x0100, 0x0100, 0x2efdd70b ) /* palette high 4 bits */
  657. ROM_END
  658.  
  659. ROM_START( hoccer2 )
  660.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  661.     ROM_LOAD( "hr.1",          0x0000, 0x2000, 0x122d159f )
  662.     ROM_LOAD( "hr.2",          0x2000, 0x2000, 0x48e1efc0 )
  663.     ROM_LOAD( "hr.3",          0x4000, 0x2000, 0x4e67b0be )
  664.     ROM_LOAD( "hr.4",          0x6000, 0x2000, 0xd2b44f58 )
  665.  
  666.     ROM_REGION( 0x2000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  667.     ROM_LOAD( "hr.d",          0x0000, 0x2000, 0xd33aa980 )
  668.  
  669.     ROM_REGION( 0x2000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  670.     ROM_LOAD( "hr.c",          0x0000, 0x2000, 0x02808294 )
  671.  
  672.     ROM_REGION( 0x0200, REGION_PROMS )
  673.     ROM_LOAD( "hr.1b",         0x0000, 0x0100, 0x896521d7 ) /* palette low 4 bits */
  674.     ROM_LOAD( "hr.1c",         0x0100, 0x0100, 0x2efdd70b ) /* palette high 4 bits */
  675. ROM_END
  676.  
  677. ROM_START( wanted )
  678.     ROM_REGION( 0x10000, REGION_CPU1 )       /* 64k for code */
  679.     ROM_LOAD( "prg-1",           0x0000, 0x2000, 0x2dd90aed )
  680.     ROM_LOAD( "prg-2",           0x2000, 0x2000, 0x67ac0210 )
  681.     ROM_LOAD( "prg-3",           0x4000, 0x2000, 0x373c7d82 )
  682.  
  683.     ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  684.     ROM_LOAD( "vram-1",           0x0000, 0x2000, 0xc4226e54 )
  685.     ROM_LOAD( "vram-2",           0x2000, 0x2000, 0x2a9b1e36 )
  686.  
  687.     ROM_REGION( 0x4000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  688.     ROM_LOAD( "obj-a",           0x0000, 0x2000, 0x90b60771 )
  689.     ROM_LOAD( "obj-b",           0x2000, 0x2000, 0xe14ee689 )
  690.  
  691.     ROM_REGION( 0x0200, REGION_PROMS )
  692.     ROM_LOAD( "wanted.k7",       0x0000, 0x0100, 0x2ba90a00 )    /* palette low 4 bits */
  693.     ROM_LOAD( "wanted.k6",       0x0100, 0x0100, 0xa93d87cc )    /* palette high 4 bits */
  694. ROM_END
  695.  
  696. ROM_START( hopprobo )
  697.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  698.     ROM_LOAD( "hopper01.3k",   0x0000, 0x1000, 0xfd7935c0 )
  699.     ROM_LOAD( "hopper02.3l",   0x1000, 0x1000, 0xdf1a479a )
  700.     ROM_LOAD( "hopper03.3n",   0x2000, 0x1000, 0x097ac2a7 )
  701.     ROM_LOAD( "hopper04.3p",   0x3000, 0x1000, 0x0f4f3ca8 )
  702.     ROM_LOAD( "hopper05.3r",   0x4000, 0x1000, 0x9d77a37b )
  703.  
  704.     ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  705.     ROM_LOAD( "hopper06.5c",   0x0000, 0x2000, 0x68f79bc8 )
  706.     ROM_LOAD( "hopper07.5d",   0x2000, 0x1000, 0x33d82411 )
  707.     ROM_RELOAD(                   0x3000, 0x1000 )
  708.  
  709.     ROM_REGION( 0x4000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  710.     ROM_LOAD( "hopper08.6f",   0x0000, 0x2000, 0x06d37e64 )
  711.     ROM_LOAD( "hopper09.6k",   0x2000, 0x2000, 0x047921c7 )
  712.  
  713.     ROM_REGION( 0x0200, REGION_PROMS )
  714.     ROM_LOAD( "7052hop.1b",    0x0000, 0x0100, 0x94450775 ) /* palette low 4 bits */
  715.     ROM_LOAD( "7052hop.1c",    0x0100, 0x0100, 0xa76bbd51 ) /* palette high 4 bits */
  716. ROM_END
  717.  
  718.  
  719.  
  720. GAME( 1982, marineb,  0,       marineb,  marineb, 0, ROT0,   "Orca", "Marine Boy" )
  721. GAME( 1982, changes,  0,       changes,  changes, 0, ROT0,   "Orca", "Changes" )
  722. GAME( 1982, looper,   changes, changes,  changes, 0, ROT0,   "Orca", "Looper" )
  723. GAME( 1982, springer, 0,       springer, marineb, 0, ROT270, "Orca", "Springer" )
  724. GAME( 1983, hoccer,   0,       hoccer,   hoccer,  0, ROT90,  "Eastern Micro Electronics, Inc.", "Hoccer (set 1)" )
  725. GAME( 1983, hoccer2,  hoccer,  hoccer,   hoccer,  0, ROT90,  "Eastern Micro Electronics, Inc.", "Hoccer (set 2)" )    /* earlier */
  726. GAME( 1984, wanted,   0,       wanted,   wanted,  0, ROT90,  "Sigma Ent. Inc.", "Wanted" )
  727. GAME( 1983, hopprobo, 0,       hopprobo, marineb, 0, ROT90,  "Sega", "Hopper Robo" )
  728.